const utils = {

}

export default utils

export function debounce(fuc, delay) {
  // 防抖动函数
  let timer = null
  return function (...args) {
    if (timer) clearTimeout(timer)
    timer = setTimeout(() => {
      fuc.apply(this, args)
    }, delay)
  }
}
export function addCache(data = {}) {
  // 存单品缓存
  let dataInfo = uni.getStorageSync('dataInfo') || []
  if (dataInfo && dataInfo.length > 0) {
    const index = dataInfo.findIndex(val => val.id === data.id)
    if (index === -1) {
      // 如果不存在做添加操作
      dataInfo.push(data)
    } else {
      // 如果存在切数量大于1做替换操作
      if (data.num > 0) {
        dataInfo = dataInfo.map(item => {
          return item.id === data.id ? data : item
        })
      } else {
        // 如果存在切数量为0做删除操作
        dataInfo.splice(index, 1)
      }
    }
  } else {
    dataInfo.push(data)
  }
  // uni.removeStorageSync('dataInfo')
  uni.setStorageSync('dataInfo', dataInfo)
}
/*
isFl   是否辅料，最大值为1
*/

export function getCache(data = [], isFl = fasle) {
  // 接口返回数组做数据回显
  const dataInfo = uni.getStorageSync('dataInfo') || []
  if (dataInfo && dataInfo.length > 0) {
    dataInfo.forEach((item, index) => {
      data = data.map(iten => {
        if (iten.id === item.id) {
          return item
        } else {
          if (iten.num === undefined) {
            return {
              ...iten,
              num: 0,
              min: 0,
              max: isFl ? 1 : 100,
              unitIndex: 0
            }
          } else {
            return iten
          }
        }
      })
    })
  } else {
    data = data.map(item => {
      return {
        ...item,
        num: 0,
        min: 0,
        max: isFl ? 1 : 100,
        unitIndex: 0
      }
    })
  }
  return data || []
}
